﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Data.SqlClient;
using GestorDeFlotasDesktop.Classes;

namespace GestorDeFlotasDesktop.AsignarChoferAuto
{
    public partial class buscarTaxi : Form
    {
        public frmAsignarChoferAuto parentFrame;

        public buscarTaxi()
        {
            InitializeComponent();
        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            txtLicencia.Text = string.Empty;
            txtMarca.Text = string.Empty;
            txtModelo.Text = string.Empty;
            txtPatente.Text = string.Empty;
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            List<SqlParameter> Parameters = new List<SqlParameter>();
            
            if (txtLicencia.Text == string.Empty)
                Parameters.Add(new SqlParameter("@licencia", DBNull.Value));
            else
                Parameters.Add(new SqlParameter("@licencia", txtLicencia.Text));

            if (txtPatente.Text == string.Empty)
                Parameters.Add(new SqlParameter("@patente", DBNull.Value));
            else
                Parameters.Add(new SqlParameter("@patente", txtPatente.Text));

            if (txtModelo.Text == string.Empty)
                Parameters.Add(new SqlParameter("@modelo", DBNull.Value));
            else
                Parameters.Add(new SqlParameter("@modelo", txtModelo.Text));

            if (txtMarca.Text == string.Empty)
                Parameters.Add(new SqlParameter("@marca", DBNull.Value));
            else
                Parameters.Add(new SqlParameter("@marca", txtMarca.Text));
            
            SqlInterface.Conectar();
            SqlDataReader TaxiReader;
            TaxiReader = SqlInterface.ExecuteReader("SQUIRTLE.spBuscarTaxi", CommandType.StoredProcedure, Parameters);
            if (TaxiReader.HasRows)
            {
                DataTable tablaResultado = new DataTable();
                tablaResultado.Load(TaxiReader);
                gridResultados.DataSource = tablaResultado;
                gridResultados.Columns[0].Visible = false;
            }
            else
            {
                MessageBox.Show("No hay taxi que cumpla con la búsqueda.");
            }
            SqlInterface.Desconectar();
        }

        private void btnSeleccionar_Click(object sender, EventArgs e)
        {
            if (gridResultados.SelectedRows.Count > 1)
            {
                MessageBox.Show("Solo esta permitido elegir un taxi.");
                return;
            }

            Auto taxi = new Auto();
            int index = gridResultados.SelectedCells[0].RowIndex;
            taxi.intCodigo = Convert.ToInt32(gridResultados["TAXI_CODIGO", index].Value);
            taxi.strPatente = gridResultados["TAXI_PATENTE", index].Value.ToString();
            taxi.strModelo = gridResultados["TAXI_MODELO", index].Value.ToString();
            taxi.strMarca = gridResultados["TAXI_MARCA", index].Value.ToString();
            taxi.strLicencia = gridResultados["TAXI_LICENCIA", index].Value.ToString();
            
            parentFrame.RegistrarTaxi(taxi);
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
